#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//int main()
//{
//	const int a = 10;
//	//int& ra = a; X
//
//	const int& ra = a;
//
//	int b = 10;
//	const int& rb = b; 
//
//	char c = 'a';
//	char& rc = c;
//	char* pc = &c;
//	cout << sizeof(c) << endl;
//	cout << sizeof(rc) << endl;
//	cout << sizeof(pc) << endl;
//
//	return 0;
//}

//int main()
//{
//	int x = 0;
//	int& rx = x;
//	rx += 1;
//
//	int* ptr = &x;
//	*ptr += 1;
//
//	return 0;
//}


//#define ADD(a,b) ((a) + (b))
//int main()
//{
//	int ret = ADD(1, 2);
//	cout << ret << endl;
//	cout << ADD(1, 1) << endl;
//
//	return 0;
//}

//inline int Add(int x, int y)
//{
//	int ret = x + y;
//	return ret;
//}
//
//int main()
//{
//	int x = 1;
//	int y = 2;
//	int ret = Add(x & y, x | y);
//	cout << ret << endl;
//
//	return 0;
//
// 
// }

void f(int x)
{
	cout << "f(int x)" << endl;
}

void f(int* ptr)
{
	cout << "f(int* ptr)" << endl;
}

int main()
{
	f(0);
	f(NULL);
	f(nullptr);

	return 0;
}